package com.hot100.mid;

import java.util.ArrayList;
import java.util.List;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 括号生成(回溯算法)
 * @date 2022/8/5 15:23
 */
public class Demo08 {

    List<String> res=new ArrayList<>();
    public static void main(String[] args) {

    }
    public List<String> generateParenthesis(int n) {
        backTracking(new StringBuffer(), n, 0);
        return res;
    }
    public void backTracking(StringBuffer s, int n, int indexof) {  //indexof表示新插入的一对括号“（）”左括号的下标
        if (n==0) {
            res.add(s.toString());
            return;
        }

        for (int i=indexof; i<=s.length(); i++) {
            s.insert(i, "()");
            backTracking(s, n-1, i+1);
            s.delete(i, i+2);
        }
    }


}
